def demo2():
    '''
    求两个有序数字列表的公共元素
    :return:
    '''
    new_list = [1,2,3,4,5,6,7,8,9]
    my_list =[2,3,4,6,9]
    for i in my_list:
        if i in new_list:
            print(i)


def demo3():
    '''
    给定一个n个整形元素的列表a，其中有一个元素出现次数超过n/2，求这个元素
    :return:
    '''

    a = [1,2,2,2,2,2,3,4,5]
    b = 0
    result = 0
    while b < len(a):
        if a.count(a[b]) > len(a)/2:
           result = a[b]
        b += 1
    print(result)


def demo4():
    '''
    列表、元组、字典的相同点、不同点有哪些？
    :return:
    '''
    print("都可以存储多个元素,可以用于存储不同类型的数据（如整数、字符串、对象等）\n都是容器类型,用来存储其他数据类型的元素。\n可以嵌套：即可以在其中存储列表、元组或字典等其他数据结构。")
    print('列表[]，元组(),字典{}')


def demo5():
    '''
    将元组(1,2,3)和集合{4，5，6}合并为一个列表
    :return:
    '''
    a = (1,2,3)
    b = {4,5,6}
    c = list(a)+list(b)
    print(c)


def demo6():
    '''
    在列表[1,2,3,4,5,6]首尾添加0和7
    :return:
    '''
    my_list = [1,2,3,4,5,6]
    my_list.insert(0,0)
    my_list.append(7)
    print(my_list)


def demo7():
    '''
    反转列表[0, 1, 2, 3, 4, 5, 6, 7]
    :return:
    '''
    my_list = [0, 1, 2, 3, 4, 5, 6, 7]
    my_list.reverse()
    print(my_list)


def demo8():
    '''
    反转列表[0, 1, 2, 3, 4, 5, 6, 7]后给出元素5的索引号
    :return:
    '''
    my_list = [0, 1, 2, 3, 4, 5, 6, 7]
    my_list.reverse()
    print(my_list)
    print(my_list.index(5))


def demo9():
    '''
    分别统计列表[True,False,0,1,2]中True,False,0,1,2元素个数，发现了什么？
    :return:
    '''
    my_list = [True,False,0,1,2]
    print(my_list.count(True))  # True 是等价于 1，因此会统计 True 和 1 的数量。
    print(my_list.count(False))  # False 是等价于 0，因此会统计 False 和 0 的数量。
    print(my_list.count(0))
    print(my_list.count(1))
    print(my_list.count(2))


def demo10():
    '''
    从列表[True,1,0,'x',None,'x',False,2,True]删除元素x
    :return:
    '''
    my_list = [True,1,0,'x',None,'x',False,2,True]
    # my_list.remove('x') 只会删除第一个x

    # for i in my_list:
    #     if i == 'x':
    #         my_list.remove(i)
    # print(my_list)

    # 使用列表推导式删除所有 'x'
    my_list = [item for item in my_list if item != 'x']
    print(my_list)



if __name__ == '__main__':
    # demo2()
    # demo3()
    # demo4()
    # demo5()
    # demo6()
    # demo7()
    # demo8()
    # demo9()
    demo10()
